Port to GtkSearchHit
authorMatthias Clasen <mclasen@redhat.com>
Fri, 24 Jul 2015 19:41:45 +0000 (15:41 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 27 Jul 2015 12:07:38 +0000 (08:07 -0400)
GtkSearchEngineModel was still trying to return uris as hits.
This is not working anymore, we are expected to return GtkSearchHit
structs.

gtk/gtksearchenginemodel.c

index 93003b5b555729c029898c9d0bcb250693da60be..a7f00eec4dc70c05ef24e0ad2b6e0928ff186333 100644 (file)
@@ -90,23 +90,26 @@ do_search (gpointer data)
       do
         {
           GFileInfo *info;
-          GFile *file;
-          gchar *uri;
 
           info = _gtk_file_system_model_get_info (model->model, &iter);
           if (info_matches_query (model->query, info))
             {
+              GFile *file;
+              GtkSearchHit *hit;
+
               file = _gtk_file_system_model_get_file (model->model, &iter);
-              uri = g_file_get_uri (file);
-              hits = g_list_prepend (hits, uri);
+              hit = g_new (GtkSearchHit, 1);
+              hit->uri = g_file_get_uri (file);
+              hit->info = g_object_ref (info);
+              hits = g_list_prepend (hits, hit);
             }
-          }
-        while (gtk_tree_model_iter_next (GTK_TREE_MODEL (model->model), &iter));
+        }
+      while (gtk_tree_model_iter_next (GTK_TREE_MODEL (model->model), &iter));
 
       if (hits)
         {
           _gtk_search_engine_hits_added (GTK_SEARCH_ENGINE (model), hits);
-          g_list_free_full (hits, g_free);
+          g_list_free_full (hits, (GDestroyNotify)_gtk_search_hit_free);
         }
     }
 
@@ -144,19 +147,11 @@ gtk_search_engine_model_stop (GtkSearchEngine *engine)
 
 static void
 gtk_search_engine_model_set_query (GtkSearchEngine *engine,
-                                   GtkQuery        *query)
+                                   GtkQuery        *query)
 {
-  GtkSearchEngineModel *model;
-
-  model = GTK_SEARCH_ENGINE_MODEL (engine);
-
-  if (query)
-    g_object_ref (query);
-
-  if (model->query)
-    g_object_unref (model->query);
+  GtkSearchEngineModel *model = GTK_SEARCH_ENGINE_MODEL (engine);
 
-  model->query = query;
+  g_set_object (&model->query, query);
 }
 
 static void